From 7b5b678e2e69f2b7000a451f6a2ae3bab294d19a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 18 Dec 2011 17:14:47 +0100 Subject: [PATCH] a11y: Fix crash in notebook When the accessible was disposed before the notebook it referenced, the weak ref could still trigger. This works around it. --- gtk/a11y/gtknotebookaccessible.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/gtk/a11y/gtknotebookaccessible.c b/gtk/a11y/gtknotebookaccessible.c index c4e5b26c94..96e9cfe591 100644 --- a/gtk/a11y/gtknotebookaccessible.c +++ b/gtk/a11y/gtknotebookaccessible.c @@ -42,6 +42,8 @@ check_focus_tab (gpointer data) atk_obj = ATK_OBJECT (data); accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj); widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_obj)); + if (widget == NULL) + return FALSE; notebook = GTK_NOTEBOOK (widget); accessible->idle_focus_id = 0; @@ -132,17 +134,6 @@ page_removed_cb (GtkNotebook *notebook, } -static void -accessible_destroyed (gpointer data) -{ - GtkNotebookAccessible *accessible = GTK_NOTEBOOK_ACCESSIBLE (data); - - if (accessible->idle_focus_id) - { - g_source_remove (accessible->idle_focus_id); - accessible->idle_focus_id = 0; - } -} static void gtk_notebook_accessible_initialize (AtkObject *obj, gpointer data) @@ -171,8 +162,6 @@ gtk_notebook_accessible_initialize (AtkObject *obj, g_signal_connect (notebook, "page-removed", G_CALLBACK (page_removed_cb), NULL); - g_object_weak_ref (G_OBJECT (notebook), (GWeakNotify)accessible_destroyed, obj); - obj->role = ATK_ROLE_PAGE_TAB_LIST; } -- 2.30.2